home *** CD-ROM | disk | FTP | other *** search
/ HPAVC / HPAVC CD-ROM.iso / CSSC_300.ZIP / CSSC.PPE (.txt) < prev    next >
PCBoard Programming Language Executable  |  1994-10-10  |  16KB  |  936 lines

  1. ;------------------------------------------------------------------------------
  2. ;                                                   .ss.
  3. ;                                                   `²²'
  4. ;             .,sS$Ss,,s$  .,sS$$$Ss.  .,sS$Ss,,s$ .ss.  .sSs.
  5. ;           .d$$²^°²$$$$'.d$P²°^^²$P'.d$$²^°²$$$$'.$$$' .$$$²Sb,.
  6. ;           $$$'   .$$$' $$$²Sçsµ²' .$$$'   .$$$'.$$$' .$$$'  `$$b.
  7. ;           $$$b,,d$$$' ,$$$b,....,s$$$$b,,d$$$'.$$$;.,$$$'    ;$$$
  8. ;           `²S$$S²²S$$S²°²S$$$$S²°°²S$$$$$$',$$S²°²S$S'.sS$$$P²'
  9. ;                                    .sS²°$$$²²°"'       d²°'
  10. ;                                  .$$²  .$$'
  11. ;                                  $$$.,d$$'
  12. ;                                  `²S$$S²'
  13. ;------------------------------------------------------------------------------
  14. ; P.P.L.X. 2.OO                          (C)1996 - Lone Runner / AEGiS CoRP'96 
  15. ;------------------------------------------------------------------------------
  16. ; PPE 3.O1 (Encryption type I) - Analysis ON - Postprocessing ON
  17. ;------------------------------------------------------------------------------
  18.  
  19.     Boolean  BOOLEAN001
  20.     Boolean  BOOLEAN002
  21.     Boolean  BOOLEAN003
  22.     Boolean  BOOLEAN004
  23.     Boolean  BOOLEAN005
  24.     Integer  INTEGER001
  25.     Integer  INTEGER002
  26.     Integer  INTEGER003
  27.     Integer  INTEGER004
  28.     Integer  INTEGER005
  29.     Integer  INTEGER006
  30.     Integer  INTEGER007
  31.     Integer  INTEGER008
  32.     Integer  INTEGER009
  33.     Integer  INTEGER010
  34.     String   STRING001
  35.     String   STRING002
  36.     String   STRING003
  37.     String   STRING004
  38.     String   STRING005
  39.     String   STRING006
  40.     String   STRING007
  41.     String   TSTRING008(2)
  42.     String   TSTRING009(2)
  43.     String   TSTRING010(2)
  44.     String   TSTRING011(2)
  45.     String   TSTRING012(2)
  46.     String   TSTRING013(2)
  47.     String   STRING014
  48.     String   STRING015
  49.     String   STRING016
  50.     String   STRING017
  51.     String   STRING018
  52.     String   STRING019
  53.     String   STRING020
  54.     String   STRING021
  55.     String   STRING022
  56.     String   STRING023
  57.     String   STRING024
  58.     String   STRING025
  59.     String   STRING026
  60.     String   STRING027
  61.     String   STRING028
  62.     String   STRING029
  63.     String   STRING030
  64.     String   TSTRING031(25)
  65.     String   STRING032
  66.     String   STRING033
  67.     String   STRING034
  68.     String   STRING035
  69.     BigStr   BIGSTR001
  70.     BigStr   BIGSTR002
  71.     Declare  Function FUNCTION001(Integer INTEGER020, Integer INTEGER021) Boolean
  72.     Declare  Procedure PROC001(Integer INTEGER015, Integer INTEGER016, Var Integer INTEGER017, Var Integer INTEGER018)
  73.     Declare  Procedure PROC002()
  74.     Declare  Procedure PROC003()
  75.     Declare  Procedure PROC004(Var Integer INTEGER011, Integer INTEGER012, Var Integer INTEGER013, Var String STRING036, String STRING037, Integer INTEGER014)
  76.     Declare  Procedure PROC005()
  77.     Declare  Procedure PROC006()
  78.     Declare  Procedure PROC007(Integer INTEGER019)
  79.     Declare  Procedure PROC008()
  80.     Declare  Procedure PROC009()
  81.     Declare  Procedure PROC010()
  82.     Declare  Procedure PROC011()
  83.     Declare  Procedure PROC012()
  84.     Declare  Procedure PROC013()
  85.     Declare  Procedure PROC014()
  86.     Declare  Procedure PROC015()
  87.     Declare  Procedure PROC016()
  88.     Declare  Procedure PROC017()
  89.     Declare  Procedure PROC018()
  90.  
  91. ;------------------------------------------------------------------------------
  92.  
  93.     STRING002 = Chr(67) + Chr(83) + Chr(83) + Chr(67)
  94.     STRING001 = Chr(118) + Chr(51) + Chr(46) + Chr(48) + Chr(48)
  95.     STRING003 = Chr(67) + Chr(117) + Chr(115) + Chr(116) + Chr(111) + Chr(109) + Chr(32) + Chr(83) + Chr(112) + Chr(108) + Chr(105) + Chr(116) + Chr(32) + Chr(83) + Chr(99) + Chr(114) + Chr(101) + Chr(101) + Chr(110) + Chr(32) + Chr(67) + Chr(104) + Chr(97) + Chr(116) + Chr(32) + Chr(80) + Chr(80) + Chr(69)
  96.     If (!AnsiOn()) End
  97.     STRING004 = "If you have suggestions or requests for permanent or optional features,"
  98.     STRING005 = "please send mail to <mslasher@io.org>.  - Rob Hunter / CSSC (c)1993-94 "
  99.     INTEGER003 = String(MinLeft())
  100.     STRING014 = PPEPath() + STRING002 + "." + "D" + "A" + "T"
  101.     STRING015 = PPEPath() + STRING002 + "_" + "L" + "O" + "G" + "." + String(PcbNode())
  102.     STRING016 = "System Operator"
  103.     STRING017 = "@" + "X" + "0" + "8"
  104.     STRING020 = "@" + "X" + "7" + "F"
  105.     STRING021 = "@" + "X" + "0" + "F"
  106.     STRING022 = "@" + "X" + "0" + "7"
  107.     STRING019 = "@X0F"
  108.     STRING018 = "@X07"
  109.     BOOLEAN004 = 0
  110.     BOOLEAN003 = 0
  111.     BOOLEAN001 = 0
  112.     BOOLEAN002 = 1
  113.     STRING033 = TokenStr()
  114.     If (InStr(STRING033, "333") <> 0) BOOLEAN001 = 1
  115.     If (FUNCTION001(333, 1)) Then
  116.         PROC008()
  117.         Goto LABEL001
  118.     Endif
  119.     :LABEL001
  120.     If (Exist(STRING014)) PROC006()
  121.     TSTRING009(1) = STRING017 + "▐" + STRING020 + "LOG" + STRING017 + "▌"
  122.     TSTRING009(2) = STRING017 + "█████"
  123.     TSTRING010(1) = STRING017 + "▐" + STRING020 + "Please Wait" + STRING017 + "▌"
  124.     TSTRING010(2) = STRING017 + "█████████████"
  125.     TSTRING011(1) = STRING017 + "▐" + STRING020 + "Q-LOCK" + STRING017 + "▌"
  126.     TSTRING011(2) = STRING017 + "████████"
  127.     TSTRING013(1) = STRING017 + "▐" + STRING020 + "HELP" + STRING017 + "▌"
  128.     TSTRING013(2) = STRING017 + "██████"
  129.     TSTRING012(1) = STRING017 + "▐" + STRING020 + "BEEP" + STRING017 + "▌"
  130.     TSTRING012(2) = STRING017 + "██████"
  131.     TSTRING008(1) = STRING017 + "▐" + STRING020 + "CHAT MODE" + STRING017 + "▌"
  132.     TSTRING008(2) = STRING017 + "▐" + STRING020 + "EDIT MODE" + STRING017 + "▌"
  133.     If (BOOLEAN004) Then
  134.         TSTRING009(0) = TSTRING009(1)
  135.     Else
  136.         TSTRING009(0) = TSTRING009(2)
  137.     Endif
  138.     TSTRING008(0) = TSTRING008(1)
  139.     TSTRING010(0) = TSTRING010(2)
  140.     TSTRING011(0) = TSTRING011(2)
  141.     TSTRING012(0) = TSTRING012(2)
  142.     TSTRING013(0) = TSTRING013(2)
  143.     Log "" + STRING002 + " " + STRING001 + " " + "" + "[" + "O" + "p" + "e" + "n" + "e" + "d: " + String(Time()) + "]", 0
  144.     SaveScrn
  145.     StartDisp 1
  146.     Cls
  147.     PROC009()
  148.     STRING025 = 0
  149.     STRING026 = 5
  150.     STRING027 = 0
  151.     STRING028 = 15
  152.     While (STRING023 <> Chr(27)) Do
  153.         STRING023 = ""
  154.         STRING024 = ""
  155.         STRING023 = KInkey()
  156.         If (!BOOLEAN003) STRING024 = MInkey()
  157.         If (STRING023 <> "") PROC010()
  158.         If (STRING024 <> "") PROC011()
  159.         If (Abort()) Then
  160.             ResetDisp
  161.             PROC009()
  162.         Endif
  163.     EndWhile
  164.     PROC008()
  165.     End
  166.  
  167. ;------------------------------------------------------------------------------
  168.  
  169.     Procedure PROC010()
  170.  
  171.     PROC004(STRING026, 13, STRING025, STRING023, STRING021, 0)
  172.     If (InStr(Mask_Ascii(), STRING023) <> 0) Then
  173.         Inc STRING025
  174.         AnsiPos STRING025, STRING026
  175.         Print STRING021 + STRING023
  176.         BIGSTR001 = BIGSTR001 + STRING023
  177.     Else
  178.         Select Case (STRING023)
  179.             Case Chr(13)
  180.                 If (BOOLEAN004) PROC007(0)
  181.                 If (STRING026 >= 13) Then
  182.                     PROC001(0, 0, STRING025, STRING026)
  183.                 Else
  184.                     Inc STRING026
  185.                     STRING025 = 0
  186.                     AnsiPos STRING025, STRING026
  187.                 Endif
  188.             Case Chr(8), Chr(127)
  189.                 If (STRING025 <> 0) Then
  190.                     AnsiPos STRING025 + 1, STRING026
  191.                     Print Chr(8) + " " + Chr(8)
  192.                     Dec STRING025
  193.                     BIGSTR001 = Left(BIGSTR001, Len(BIGSTR001) - 1)
  194.                 Else
  195.                     Sound 2000
  196.                     Delay 1
  197.                     Sound 0
  198.                     KbdFlush
  199.                 Endif
  200.             Case Chr(9)
  201.                 If (TSTRING013(0) <> TSTRING013(1)) PROC012()
  202.             Case Chr(18)
  203.                 PROC009()
  204.             Case Chr(12)
  205.                 If (BOOLEAN004) Goto LABEL002
  206.                 BOOLEAN004 = 1
  207.                 PROC014()
  208.                 TSTRING009(0) = TSTRING009(1)
  209.                 PROC002()
  210.                 BIGSTR001 = ""
  211.                 BIGSTR002 = ""
  212.                 Goto LABEL003
  213.                 :LABEL002
  214.                 BOOLEAN004 = 0
  215.                 PROC015()
  216.                 TSTRING009(0) = TSTRING009(2)
  217.                 PROC002()
  218.                 :LABEL003
  219.             Case Chr(7)
  220.                 TSTRING012(0) = TSTRING012(1)
  221.                 PROC002()
  222.                 Print "@BEEP@"
  223.                 TSTRING012(0) = TSTRING012(2)
  224.                 PROC002()
  225.                 KeyFlush
  226.             Case Chr(17)
  227.                 If (BOOLEAN003) Goto LABEL004
  228.                 BOOLEAN003 = 1
  229.                 TSTRING011(0) = TSTRING011(1)
  230.                 Goto LABEL005
  231.                 :LABEL004
  232.                 BOOLEAN003 = 0
  233.                 TSTRING011(0) = TSTRING011(2)
  234.                 MdmFlush
  235.                 :LABEL005
  236.                 PROC002()
  237.             Case Chr(20)
  238.                 If (TSTRING013(0) <> TSTRING013(1)) Then
  239.                     TSTRING010(0) = TSTRING010(1)
  240.                     PROC002()
  241.                     PROC016()
  242.                 Endif
  243.             Case Chr(5)
  244.                 If (TSTRING013(0) <> TSTRING013(1)) Then
  245.                     TSTRING010(0) = TSTRING010(1)
  246.                     TSTRING008(0) = TSTRING008(2)
  247.                     PROC002()
  248.                     PROC018()
  249.                 Endif
  250.             Case Chr(23)
  251.                 For INTEGER005 = -13 To -5
  252.                     AnsiPos 1, -INTEGER005
  253.                     ClrEol
  254.                 Next
  255.                 STRING025 = 0
  256.                 STRING026 = 5
  257.                 AnsiPos 1, 5
  258.             Endif
  259.     End Select
  260.  
  261.     EndProc
  262.  
  263.  
  264. ;------------------------------------------------------------------------------
  265.  
  266.     Procedure PROC011()
  267.  
  268.     PROC004(STRING028, 22, STRING027, STRING024, STRING022, 1)
  269.     If (InStr(Mask_Ascii(), STRING024) <> 0) Then
  270.         Inc STRING027
  271.         AnsiPos STRING027, STRING028
  272.         Print STRING022 + STRING024
  273.         BIGSTR002 = BIGSTR002 + STRING024
  274.     Else
  275.         Select Case (STRING024)
  276.             Case Chr(13)
  277.                 If (BOOLEAN004) PROC007(1)
  278.                 If (STRING028 >= 22) Then
  279.                     PROC001(10, 9, STRING027, STRING028)
  280.                 Else
  281.                     Inc STRING028
  282.                     STRING027 = 0
  283.                     AnsiPos STRING027, STRING028
  284.                 Endif
  285.             Case Chr(8), Chr(127)
  286.                 If (STRING027 <> 0) Then
  287.                     AnsiPos STRING027 + 1, STRING028
  288.                     Print Chr(8) + " " + Chr(8)
  289.                     BIGSTR002 = Left(BIGSTR002, Len(BIGSTR002) - 1)
  290.                     Dec STRING027
  291.                 Endif
  292.             Case Chr(18)
  293.                 PROC009()
  294.             Case Chr(9)
  295.                 If (TSTRING013(0) <> TSTRING013(1)) PROC013()
  296.             Case Chr(7)
  297.                 TSTRING012(0) = TSTRING012(1)
  298.                 PROC002()
  299.                 Sound 2000
  300.                 Delay 2
  301.                 Sound 2500
  302.                 Delay 2
  303.                 Sound 3000
  304.                 Delay 2
  305.                 Sound 0
  306.                 TSTRING012(0) = TSTRING012(2)
  307.                 PROC002()
  308.                 MdmFlush
  309.             Case Chr(23)
  310.                 For INTEGER005 = -22 To -15
  311.                     AnsiPos 1, -INTEGER005
  312.                     ClrEol
  313.                 Next
  314.                 STRING027 = 0
  315.                 STRING028 = 15
  316.                 AnsiPos 1, 15
  317.             Case Chr(27)
  318.                 If (BOOLEAN002) PROC008()
  319.             Endif
  320.     End Select
  321.  
  322.     EndProc
  323.  
  324.  
  325. ;------------------------------------------------------------------------------
  326.  
  327.     Procedure PROC006()
  328.  
  329.     Integer  INTEGER008
  330.     Integer  INTEGER009
  331.     Integer  INTEGER010
  332.     String   STRING034
  333.     String   STRING035
  334.  
  335.     FOpen 1, STRING014, 0, 2
  336.     FGet 1, STRING016
  337.     FGet 1, INTEGER008
  338.     FGet 1, INTEGER009
  339.     FGet 1, INTEGER010
  340.     FGet 1, STRING034
  341.     FGet 1, STRING035
  342.     FGet 1, STRING006
  343.     FClose 1
  344.     If (Left(Upper(STRING034), 1) == "N") BOOLEAN002 = 0
  345.     If (Left(Upper(STRING035), 1) == "Y") Then
  346.         BOOLEAN004 = 1
  347.         PROC014()
  348.     Endif
  349.     If ((INTEGER010 >= 1) && (INTEGER010 <= 6)) Then
  350.         STRING017 = "@X" + Right("0" + String(I2S(INTEGER010, 16)), 2)
  351.         STRING018 = "@X0" + String(I2S(INTEGER010 + 8, 16))
  352.         STRING020 = "@X" + String(I2S(INTEGER010, 16)) + "F"
  353.     Endif
  354.     STRING021 = "@X" + Right("0" + String(I2S(INTEGER008, 16)), 2)
  355.     STRING022 = "@X" + Right("0" + String(I2S(INTEGER009, 16)), 2)
  356.  
  357.     EndProc
  358.  
  359.  
  360. ;------------------------------------------------------------------------------
  361.  
  362.     Procedure PROC009()
  363.  
  364.     AnsiPos 1, 23
  365.     Print STRING017 + "───────────────────────────────────────────────────────────────────────────────"
  366.     Backup Len(U_Name()) + 9
  367.     Print STRING017 + "═ " + STRING022 + Mixed(U_Name()) + STRING017 + " ═───"
  368.     PROC003()
  369.     AnsiPos 1, 1
  370.     PrintLn STRING017 + "·" + STRING018 + "∙ " + STRING019 + "[MS] " + STRING002 + " " + STRING001 + STRING017 + ": " + STRING019 + STRING003 + STRING018 + " ∙" + STRING017 + "· ╒ [" + STRING019 + "TAB" + STRING017 + "]=" + STRING018 + "Help " + STRING017 + "/ [" + STRING019 + "ESC" + STRING017 + "]=" + STRING018 + "Exit" + STRING017 + " ╕"
  371.     PrintLn STRING017 + "────────────────────────────────────────────────────┴─────────────────────────┴"
  372.     PROC002()
  373.     Newline
  374.     PrintLn STRING017 + "───────────────────────────────────────────────────────────────────────────────"
  375.     AnsiPos 79, 3
  376.  
  377.     EndProc
  378.  
  379.  
  380. ;------------------------------------------------------------------------------
  381.  
  382.     Procedure PROC002()
  383.  
  384.     AnsiPos 1, 3
  385.     Print STRING017 + "██" + TSTRING010(0) + "██████████████████████" + TSTRING011(0) + "█" + TSTRING012(0) + "█" + TSTRING013(0) + "█" + TSTRING009(0) + "█" + TSTRING008(0) + "██"
  386.     Backup 1
  387.  
  388.     EndProc
  389.  
  390.  
  391. ;------------------------------------------------------------------------------
  392.  
  393.     Procedure PROC008()
  394.  
  395.     Log "" + STRING002 + " " + STRING001 + " " + "" + "[" + "C" + "l" + "o" + "s" + "e" + "d: " + String(Time()) + "]", 0
  396.     INTEGER004 = MinLeft()
  397.     If (INTEGER003 > INTEGER004) AdjTime INTEGER003 - INTEGER004
  398.     If (BOOLEAN004) PROC015()
  399.     DefColor
  400.     StartDisp 2
  401.     If (BOOLEAN001) Then
  402.         KbdStuff Chr(27)
  403.         KbdStuff Chr(13)
  404.     Else
  405.         RestScrn
  406.     Endif
  407.     End
  408.  
  409.     EndProc
  410.  
  411.  
  412. ;------------------------------------------------------------------------------
  413.  
  414.     Procedure PROC004(Var Integer INTEGER011, Integer INTEGER012, Var Integer INTEGER013, Var String STRING036, String STRING037, Integer INTEGER014)
  415.  
  416.     If (INTEGER013 == 79) Then
  417.         INTEGER005 = 0
  418.         If (INTEGER011 == INTEGER012) Then
  419.             If (STRING036 == Chr(13)) Goto LABEL013
  420.             STRING032 = ScrText(79, INTEGER012, 1, 0)
  421.             If (Left(STRING032, 1) == " ") Then
  422.                 If (INTEGER014 == 0) Then
  423.                     PROC001(0, 0, INTEGER013, INTEGER011)
  424.                     Goto LABEL006
  425.                 Endif
  426.                 PROC001(10, 9, INTEGER013, INTEGER011)
  427.                 :LABEL006
  428.                 Goto LABEL010
  429.             Endif
  430.             For INTEGER005 = 1 To 30
  431.                 INTEGER006 = 80 - INTEGER005
  432.                 STRING032 = ScrText(INTEGER006, INTEGER012, INTEGER005, 0)
  433.                 If (Left(STRING032, 1) == " ") Goto LABEL007
  434.             Next
  435.             Goto LABEL009
  436.             :LABEL007
  437.             AnsiPos INTEGER006, INTEGER012
  438.             Print Space(INTEGER005)
  439.             If (INTEGER014 == 0) Then
  440.                 PROC001(0, 0, INTEGER013, INTEGER011)
  441.                 Goto LABEL008
  442.             Endif
  443.             PROC001(10, 9, INTEGER013, INTEGER011)
  444.             :LABEL008
  445.             Print STRING037 + LTrim(String(STRING032), " ")
  446.             INTEGER013 = INTEGER005 - 1
  447.             ClrEol
  448.             Goto LABEL010
  449.             :LABEL009
  450.             If (INTEGER014 == 0) Then
  451.                 PROC001(0, 0, INTEGER013, INTEGER011)
  452.                 Goto LABEL010
  453.             Endif
  454.             PROC001(10, 9, INTEGER013, INTEGER011)
  455.             :LABEL010
  456.             Goto LABEL013
  457.         Endif
  458.         If (STRING036 == Chr(13)) Goto LABEL013
  459.         STRING032 = ScrText(79, GetY(), 1, 0)
  460.         If (Left(STRING032, 1) == " ") Then
  461.             INTEGER013 = 0
  462.             Inc INTEGER011
  463.             Goto LABEL013
  464.         Endif
  465.         For INTEGER005 = 1 To 30
  466.             INTEGER006 = 80 - INTEGER005
  467.             STRING032 = ScrText(INTEGER006, GetY(), INTEGER005, 0)
  468.             If (Left(STRING032, 1) == " ") Goto LABEL011
  469.         Next
  470.         Goto LABEL012
  471.         :LABEL011
  472.         AnsiPos INTEGER006, GetY()
  473.         Print Space(INTEGER006)
  474.         INTEGER013 = 0
  475.         Inc INTEGER011
  476.         AnsiPos 1, INTEGER011
  477.         Print LTrim(String(STRING032), " ")
  478.         INTEGER013 = INTEGER005 - 1
  479.         Goto LABEL013
  480.         :LABEL012
  481.         INTEGER013 = 0
  482.         Inc INTEGER011
  483.         :LABEL013
  484.         If (BOOLEAN004) Then
  485.             If (INTEGER014 == 0) Then
  486.                 STRING007 = Right(BIGSTR001, INTEGER005 - 1)
  487.                 BIGSTR001 = Left(BIGSTR001, Len(BIGSTR001) - INTEGER005)
  488.                 PROC007(0)
  489.                 BIGSTR001 = STRING007
  490.                 Goto LABEL014
  491.             Endif
  492.             STRING007 = Right(BIGSTR002, INTEGER005 - 1)
  493.             BIGSTR002 = Left(BIGSTR002, Len(BIGSTR002) - INTEGER005)
  494.             PROC007(1)
  495.             BIGSTR002 = STRING007
  496.         Endif
  497.     Endif
  498.     :LABEL014
  499.  
  500.     EndProc
  501.  
  502.  
  503. ;------------------------------------------------------------------------------
  504.  
  505.     Procedure PROC001(Integer INTEGER015, Integer INTEGER016, Var Integer INTEGER017, Var Integer INTEGER018)
  506.  
  507.     TSTRING031(5 + INTEGER015) = ScrText(1, 11 + INTEGER016, 80, 0)
  508.     TSTRING031(6 + INTEGER015) = ScrText(1, 12 + INTEGER016, 80, 0)
  509.     TSTRING031(7 + INTEGER015) = ScrText(1, 13 + INTEGER016, 80, 0)
  510.     INTEGER002 = 7 + INTEGER015
  511.     If (TSTRING031(7 + INTEGER015) == Space(80)) Then
  512.         If (TSTRING031(6 + INTEGER015) == Space(80)) Then
  513.             Select Case (TSTRING031(5 + INTEGER015))
  514.                 Case Space(80)
  515.                     INTEGER002 = 4 + INTEGER015
  516.                     TSTRING031(5 + INTEGER015) = ScrText(1, 11 + INTEGER016, 80, 1)
  517.                     INTEGER002 = 5 + INTEGER015
  518.                 Else
  519.                 Case Space(80)
  520.                     TSTRING031(5 + INTEGER015) = ScrText(1, 12 + INTEGER016, 80, 1)
  521.                     TSTRING031(6 + INTEGER015) = ScrText(1, 13 + INTEGER016, 80, 1)
  522.                     INTEGER002 = 6 + INTEGER015
  523.                     TSTRING031(5 + INTEGER015) = ScrText(1, 11 + INTEGER016, 80, 1)
  524.                     TSTRING031(6 + INTEGER015) = ScrText(1, 12 + INTEGER016, 80, 1)
  525.                     TSTRING031(7 + INTEGER015) = ScrText(1, 13 + INTEGER016, 80, 1)
  526.                     INTEGER002 = 7 + INTEGER015
  527.                 Else
  528.                 Case Space(80)
  529.                 Case Space(80)
  530.                     TSTRING031(5 + INTEGER015) = ScrText(1, 13 + INTEGER016, 80, 1)
  531.                     INTEGER002 = 5 + INTEGER015
  532.                 Case Else
  533.                     TSTRING031(5 + INTEGER015) = ScrText(1, 12 + INTEGER016, 80, 1)
  534.                     TSTRING031(6 + INTEGER015) = ScrText(1, 13 + INTEGER016, 80, 1)
  535.                     INTEGER002 = 6 + INTEGER015
  536.                     TSTRING031(5 + INTEGER015) = ScrText(1, 11 + INTEGER016, 80, 1)
  537.                     TSTRING031(6 + INTEGER015) = ScrText(1, 12 + INTEGER016, 80, 1)
  538.                     TSTRING031(7 + INTEGER015) = ScrText(1, 13 + INTEGER016, 80, 1)
  539.                 Endif
  540.             Endif
  541.     End Select
  542.     For INTEGER007 = 5 + INTEGER015 To INTEGER002
  543.         AnsiPos 1, INTEGER007
  544.         PrintLn TSTRING031(INTEGER007)
  545.     Next
  546.     For INTEGER007 = INTEGER002 + 1 To 13 + INTEGER016
  547.         AnsiPos 1, INTEGER007
  548.         ClrEol
  549.     Next
  550.     INTEGER017 = 0
  551.     INTEGER018 = INTEGER002 + 1
  552.     AnsiPos 1, INTEGER002 + 1
  553.  
  554.     EndProc
  555.  
  556.  
  557. ;------------------------------------------------------------------------------
  558.  
  559.     Procedure PROC012()
  560.  
  561.     TSTRING013(0) = TSTRING013(1)
  562.     PROC002()
  563.     For INTEGER001 = -13 To -5
  564.         TSTRING031(-INTEGER001) = ScrText(1, -INTEGER001, 80, 0)
  565.     Next
  566.     Print STRING020
  567.     SPrint "H"
  568.     SPrintLn "                              C" + "S" + "S" + "C SysOp Help                                  "
  569.     SPrintLn "───────────────────────────────────────────────────────────────────────────────"
  570.     SPrintLn "  [ESC] = Exit Chat                      [CTRL-E] = Load External User Editor  "
  571.     SPrintLn "  [TAB] = This Help Screen               [CTRL-G] = Page/Beep the Online User  "
  572.     SPrintLn "                                         [CTRL-L] = Toggle Chat Logging        "
  573.     SPrintLn "  [CTRL-K] = Redraw Screen Outlines      [CTRL-Q] = Quiet! Lock User's Keys    "
  574.     SPrintLn "  [CTRL-W] = Clear Your Chat Window      [CTRL-T] = Import a Text File         "
  575.     SPrintLn "───────────────────────────────────────────────────────────────────────────────"
  576.     SPrint "                          TAP ANY KEY TO CONTINUE                              "
  577.     SPrint "9H"
  578.     While (KInkey() == "") Do
  579.         If (Abort()) Then
  580.             ResetDisp
  581.             PROC009()
  582.         Endif
  583.         If (!BOOLEAN003) STRING024 = MInkey()
  584.         If (STRING024 <> "") PROC011()
  585.     EndWhile
  586.     SPrint "H"
  587.     Print STRING021
  588.     For INTEGER001 = 5 To 13
  589.         SPrint TSTRING031(INTEGER001)
  590.     Next
  591.     TSTRING013(0) = TSTRING013(2)
  592.     PROC002()
  593.  
  594.     EndProc
  595.  
  596.  
  597. ;------------------------------------------------------------------------------
  598.  
  599.     Procedure PROC014()
  600.  
  601.     FAppend 1, STRING015, 1, 0
  602.     FPutLn 1, "--------------------------------------------------------------------------------"
  603.     FPutLn 1, "S: (SysOp): " + Upper(STRING016) + Space(47 - Len(STRING016)) + "[" + String(Time()) + "] [" + String(Date()) + "]"
  604.     FPutLn 1, "U: (User) : " + String(U_Name()) + Space(56 - Len(U_Name())) + "[" + STRING002 + " " + STRING001 + "]"
  605.     FPutLn 1, "--------------------------------------------------------------------------------"
  606.     FClose 1
  607.  
  608.     EndProc
  609.  
  610.  
  611. ;------------------------------------------------------------------------------
  612.  
  613.     Procedure PROC007(Integer INTEGER019)
  614.  
  615.     If ((INTEGER019 == 0) && (BIGSTR001 <> "")) Then
  616.         FAppend 1, STRING015, 1, 0
  617.         FPutLn 1, "S: " + BIGSTR001
  618.         FClose 1
  619.         BIGSTR001 = ""
  620.     ElseIf (BIGSTR002 <> "") Then
  621.         FAppend 1, STRING015, 1, 0
  622.         FPutLn 1, "U: " + BIGSTR002
  623.         FClose 1
  624.         BIGSTR002 = ""
  625.     Endif
  626.  
  627.     EndProc
  628.  
  629.  
  630. ;------------------------------------------------------------------------------
  631.  
  632.     Procedure PROC015()
  633.  
  634.     PROC007(0)
  635.     PROC007(1)
  636.     FAppend 1, STRING015, 1, 0
  637.     FPutLn 1, "---------------------------------------------------------------[END: " + String(Time()) + "]--"
  638.     FPutLn 1, ""
  639.     FClose 1
  640.  
  641.     EndProc
  642.  
  643.  
  644. ;------------------------------------------------------------------------------
  645.  
  646.     Procedure PROC013()
  647.  
  648.     TSTRING013(0) = TSTRING013(1)
  649.     PROC002()
  650.     For INTEGER001 = -22 To -15
  651.         TSTRING031(-INTEGER001) = ScrText(1, -INTEGER001, 80, 0)
  652.     Next
  653.     Print STRING020
  654.     MPrint "1H"
  655.     MPrintLn "                              C" + "S" + "S" + "C User Help                                   "
  656.     MPrintLn "───────────────────────────────────────────────────────────────────────────────"
  657.     MPrintLn "                                                                               "
  658.     MPrintLn "             [ESC] = Exit CSSC             [CTRL-G] = Page/Beep the SysOp      "
  659.     MPrintLn "             [TAB] = This Help Screen      [CTRL-K] = Redraw Screen Outlines   "
  660.     MPrintLn "                                           [CTRL-W] = Clear Your Chat Window   "
  661.     MPrintLn "───────────────────────────────────────────────────────────────────────────────"
  662.     MPrint "                          TAP ANY KEY TO CONTINUE                              "
  663.     MPrint "9H"
  664.     While (MInkey() == "") Do
  665.         If (Abort()) Then
  666.             ResetDisp
  667.             PROC009()
  668.         Endif
  669.         STRING023 = KInkey()
  670.         If (STRING023 == Chr(27)) PROC008()
  671.         If (STRING023 <> "") PROC010()
  672.     EndWhile
  673.     MPrint "1H"
  674.     Print STRING022
  675.     For INTEGER001 = 15 To 22
  676.         MPrint TSTRING031(INTEGER001)
  677.     Next
  678.     TSTRING013(0) = TSTRING013(2)
  679.     PROC002()
  680.  
  681.     EndProc
  682.  
  683.  
  684. ;------------------------------------------------------------------------------
  685.  
  686.     Procedure PROC016()
  687.  
  688.     STRING029 = ""
  689.     STRING030 = ""
  690.     KbdFlush
  691.     Print STRING021
  692.     SPrint "2HFilename: "
  693.     Print STRING020
  694.     SPrint Space(35)
  695.     SPrint "D"
  696.     While (STRING030 <> Chr(13)) Do
  697.         STRING030 = KInkey()
  698.         If (Abort()) ResetDisp
  699.         If (InStr(Mask_File(), STRING030) && (Len(STRING029) < 65)) Then
  700.             SPrint STRING030
  701.             STRING029 = STRING029 + STRING030
  702.             Continue
  703.         Endif
  704.         If (((STRING030 == Chr(8)) || (STRING030 == Chr(127))) && (Len(STRING029) <> 0)) Then
  705.             SPrint Chr(8) + " " + Chr(8)
  706.             STRING029 = Left(STRING029, Len(STRING029) - 1)
  707.         Endif
  708.     EndWhile
  709.     If (Exist(STRING029)) Then
  710.         If (BOOLEAN004) Then
  711.             FAppend 1, STRING015, 1, 0
  712.             FPutLn 1, "TEXT FILE: " + String(STRING029)
  713.             FClose 1
  714.         Endif
  715.         PROC005()
  716.         StartDisp 2
  717.         DefColor
  718.         Cls
  719.         DispFile STRING029, 0
  720.         Wait
  721.         StartDisp 1
  722.         Cls
  723.         PROC017()
  724.         KeyFlush
  725.     Else
  726.         Print STRING021
  727.         SPrint "2H[NO FILE] "
  728.         Delay 10
  729.     Endif
  730.     PROC003()
  731.     TSTRING010(0) = TSTRING010(2)
  732.     PROC002()
  733.  
  734.     EndProc
  735.  
  736.  
  737. ;------------------------------------------------------------------------------
  738.  
  739.     Procedure PROC005()
  740.  
  741.     For INTEGER001 = 1 To 22
  742.         TSTRING031(INTEGER001) = ScrText(1, INTEGER001, 80, 1)
  743.     Next
  744.     TSTRING031(23) = ScrText(1, 23, 79, 1)
  745.  
  746.     EndProc
  747.  
  748.  
  749. ;------------------------------------------------------------------------------
  750.  
  751.     Procedure PROC017()
  752.  
  753.     TSTRING031(14) = STRING017 + Left("───────────────────────────────────────────────────────────────────────────────", 70 - Len(STRING016)) + "═ " + STRING021 + STRING016 + STRING017 + " ═─── "
  754.     For INTEGER001 = 1 To 23
  755.         Print TSTRING031(INTEGER001)
  756.     Next
  757.  
  758.     EndProc
  759.  
  760.  
  761. ;------------------------------------------------------------------------------
  762.  
  763.     Procedure PROC018()
  764.  
  765.     If (((InStr(STRING006, " ") <> 0) && Exist(Left(STRING006, InStr(STRING006, " ")))) || Exist(STRING006)) Then
  766.         If (BOOLEAN004) Then
  767.             FAppend 1, STRING015, 1, 0
  768.             FPutLn 1, "USER EDITOR"
  769.             FClose 1
  770.         Endif
  771.         PROC005()
  772.         SPrint ""
  773.         StartDisp 2
  774.         Tokenize STRING006
  775.         Call STRING006
  776.         StartDisp 1
  777.         Cls
  778.         PROC017()
  779.         KeyFlush
  780.     Else
  781.         Print STRING021
  782.         SPrint "2H[NO .PPE]: [" + STRING006 + "]"
  783.         Delay 10
  784.     Endif
  785.     PROC003()
  786.     TSTRING008(0) = TSTRING008(1)
  787.     TSTRING010(0) = TSTRING010(2)
  788.     PROC002()
  789.  
  790.     EndProc
  791.  
  792.  
  793. ;------------------------------------------------------------------------------
  794.  
  795.     Procedure PROC003()
  796.  
  797.     AnsiPos 1, 14
  798.     Print STRING017 + Left("───────────────────────────────────────────────────────────────────────────────", 70 - Len(STRING016)) + "═ " + STRING021 + STRING016 + STRING017 + " ═───"
  799.  
  800.     EndProc
  801.  
  802.  
  803. ;------------------------------------------------------------------------------
  804.  
  805.     Function FUNCTION001(Integer INTEGER020, Integer INTEGER021) Boolean
  806.  
  807.     If (FileInf(PPEPath() + PPEName() + ".PPE", 4) <> 16166) FUNCTION001 = 1
  808.  
  809.     EndFunc
  810.  
  811.  
  812. ;------------------------------------------------------------------------------
  813. ;
  814. ; Usage report (before postprocessing)
  815. ;
  816. ; ■ Statements used :
  817. ;
  818. ;    3       End
  819. ;    4       Cls
  820. ;    4       ClrEol
  821. ;    1       Wait
  822. ;    141     Goto 
  823. ;    171     Let 
  824. ;    22      Print 
  825. ;    4       PrintLn 
  826. ;    98      If 
  827. ;    1       DispFile 
  828. ;    1       FOpen 
  829. ;    6       FAppend 
  830. ;    7       FClose 
  831. ;    7       FGet 
  832. ;    10      FPutLn 
  833. ;    4       ResetDisp
  834. ;    6       StartDisp 
  835. ;    2       DefColor
  836. ;    1       AdjTime 
  837. ;    2       Log 
  838. ;    6       Delay 
  839. ;    7       Inc 
  840. ;    2       Dec 
  841. ;    1       Newline
  842. ;    1       Tokenize 
  843. ;    2       KbdStuff 
  844. ;    1       Call 
  845. ;    21      AnsiPos 
  846. ;    2       Backup 
  847. ;    1       SaveScrn
  848. ;    1       RestScrn
  849. ;    6       Sound 
  850. ;    13      SPrint 
  851. ;    8       SPrintLn 
  852. ;    5       MPrint 
  853. ;    7       MPrintLn 
  854. ;    2       KbdFlush
  855. ;    2       MdmFlush
  856. ;    3       KeyFlush
  857. ;    18      EndProc
  858. ;    1       EndFunc
  859. ;
  860. ;
  861. ; ■ Functions used :
  862. ;
  863. ;    18      -
  864. ;    306     +
  865. ;    16      -
  866. ;    45      ==
  867. ;    20      <>
  868. ;    13      <
  869. ;    13      <=
  870. ;    1       >
  871. ;    27      >=
  872. ;    77      !
  873. ;    29      &&
  874. ;    16      ||
  875. ;    12      Len(
  876. ;    3       Upper()
  877. ;    14      Left()
  878. ;    5       Right()
  879. ;    11      Space()
  880. ;    71      Chr()
  881. ;    6       InStr()
  882. ;    4       Abort()
  883. ;    2       LTrim()
  884. ;    1       Date()
  885. ;    4       Time()
  886. ;    4       U_Name()
  887. ;    16      String()
  888. ;    1       Mask_File()
  889. ;    2       Mask_Ascii()
  890. ;    3       PPEPath()
  891. ;    1       PcbNode()
  892. ;    2       MinLeft()
  893. ;    4       Exist()
  894. ;    5       I2S()
  895. ;    1       TokenStr()
  896. ;    1       AnsiOn()
  897. ;    3       GetY()
  898. ;    1       FileInf()
  899. ;    1       PPEName()
  900. ;    4       KInkey()
  901. ;    3       MInkey()
  902. ;    23      ScrText()
  903. ;    1       Mixed()
  904. ;
  905. ;------------------------------------------------------------------------------
  906. ;
  907. ; Analysis flags : AMC
  908. ;
  909. ; A - Adjust online time remaining ■ 5
  910. ;     Program modify the amount of online time remaining, this may
  911. ;     be a way to bypass time limits
  912. ;     ■ Search for : ADJTIME
  913. ;
  914. ; M - Send text to modem only ■ 4
  915. ;     Some informations are sent only to the modem, not to the local
  916. ;     screen, this is a well known way to make stealth backdoors, Check!
  917. ;     ■ Search for : SENDMODEM, MPRINT, MPRINTLN
  918. ;
  919. ; C - Call child PPE ■ 3
  920. ;     This is usually normal, but may be a tricky way to launch some
  921. ;     sysop-only commands.
  922. ;     ■ Search for : CALL
  923. ;
  924. ;------------------------------------------------------------------------------
  925. ;
  926. ; Postprocessing report
  927. ;
  928. ;    12      For/Next
  929. ;    4       While/EndWhile
  930. ;    35      If/Then or If/Then/Else
  931. ;    3       Select Case
  932. ;
  933. ;------------------------------------------------------------------------------
  934. ;                 AEGiS Corp - Break the routines, code against the machines!
  935. ;------------------------------------------------------------------------------
  936.